
// <copyright file="WizardEventArgs.cs" company="Subhadra Software Solutions">
//   
// </copyright>
// <summary>
//   Class WizardEventArgs.
// </summary>

namespace SubhadraSolutions.Sharp.Utils.Windows.Forms
{
    using System;

    /// <summary>
    ///     Class WizardEventArgs.
    /// </summary>
    public class WizardEventArgs : EventArgs
    {
        #region Constructors and Finalizers

        /// <summary>
        /// Initializes a new instance of the <see cref="WizardEventArgs"/> class.
        /// </summary>
        /// <param name="operationType">
        /// Type of the operation.
        /// </param>
        /// <param name="currentTabPageIndex">
        /// Index of the current tab page.
        /// </param>
        public WizardEventArgs(OperationType operationType, int currentTabPageIndex)
        {
            this.OperationType = operationType;
            this.CurrentTabPageIndex = currentTabPageIndex;
            this.CanProceed = true;
            this.AllowBack = true;
            this.AllowNext = true;
            this.AllowCancel = true;
        }

        #endregion Constructors and Finalizers

        #region Public Properties

        /// <summary>
        ///     Gets or sets a value indicating whether [allow back].
        /// </summary>
        /// <value><c>true</c> if [allow back]; otherwise, <c>false</c>.</value>
        public bool AllowBack { get; set; }

        /// <summary>
        ///     Gets or sets a value indicating whether [allow cancel].
        /// </summary>
        /// <value><c>true</c> if [allow cancel]; otherwise, <c>false</c>.</value>
        public bool AllowCancel { get; set; }

        /// <summary>
        ///     Gets or sets a value indicating whether [allow next].
        /// </summary>
        /// <value><c>true</c> if [allow next]; otherwise, <c>false</c>.</value>
        public bool AllowNext { get; set; }

        /// <summary>
        ///     Gets or sets a value indicating whether this instance can proceed.
        /// </summary>
        /// <value><c>true</c> if this instance can proceed; otherwise, <c>false</c>.</value>
        public bool CanProceed { get; set; }

        /// <summary>
        ///     Gets the index of the current tab page.
        /// </summary>
        /// <value>The index of the current tab page.</value>
        public int CurrentTabPageIndex { get; private set; }

        /// <summary>
        ///     Gets the type of the operation.
        /// </summary>
        /// <value>The type of the operation.</value>
        public OperationType OperationType { get; private set; }

        #endregion Public Properties
    }
}
